#Kiwi Editor is a framework for building WYSIWYG web editors.
#Copyright (C) 2011  Roosevelt de Lima Sardinha

#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.

#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.

#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

#Contact the author at roosevelt1@gmail.com (Roosevelt) 

class ProfilesController < ApplicationController
  def create
    # Getting parameters
    json_str = params[:json]
    as_json = ActiveSupport::JSON
    
    json = as_json.decode(json_str)
    
    profile = Profile.new
    profile.update_with_json(json)
        
    respond_to do |format|
      format.js  { render :json => profile.id ? profile.id : false}
    end
  end
   
  def update
    # Getting parameters
    json_str = params[:json]
    as_json = ActiveSupport::JSON
    
    json = as_json.decode(json_str)
    
    profile = Profile.find(params[:id])
    profile.update_with_json(json)
    
    respond_to do |format|
      format.js  { render :json => true}
    end
  end
   
  def destroy
    profile = Profile.find(params[:id])
    Profile.destroy(profile)
    
    respond_to do |format|
      format.js  { render :json => true}
    end
  end
   
  def index
    profiles = Profile.all
    all_profiles_array = []
    profiles_hash = {}
    
    profiles.each do |profile|
      all_profiles_array << profile.to_hash 
    end
    
    profiles_hash["profiles"] = all_profiles_array
    
    respond_to do |format|
      format.js  { render :json => profiles_hash}
      format.xml  { render :xml => profiles_hash}
    end
  end
  
  def get
    profile = Profile.find(params[:id])   
    respond_to do |format|
      format.js  { render :json => profile.to_hash}
      format.xml  { render :xml => profile.to_hash}
    end
  end
  
  def exists?
    profile = Profile.find_by_id(params[:id])    
    respond_to do |format|
      format.js  { render :json => profile.nil? ? false : true}
    end
  end
  
end


# JSON format expected for a profile
# {
#    name: teste,
#    description: teste,
#    types: [tipo1, tipo2, tipo3] 
# }
 
# {name: teste, description: teste, types: [tipo1, tipo2, tipo3]}




